// 这是用promise封装的ajax,这样，ajax执行的时候就不必传入回调函数进行处理，只需要在封装的ajax内部交给promise处理

function ajaxPromise(ops){
    ops.data=ops.data||{};
    ops.type=ops.type||"get";
    var str="";
    for(var i in ops.data){
        str+=`${i}=${ops.data[i]}&`;
    }
    if(ops.type=="get"){
        var t=new Date().getTime();
        ops.url=ops.url+"?"+str+"_time"+t;
    }
    var xhr=new XMLHttpRequest();
    xhr.open(ops.type,ops.url);
    if(ops.type=="post"){
        xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
        xhr.send(str);
    }else{
        xhr.send();
    }
    return  new Promise(function(resolve,reject){
        xhr.onreadystatechange=function(){
            if(xhr.readyState==4&&xhr.status==200){
                resolve(xhr.responseText);
            }else if(xhr.readyState==4&&xhr.status!==200){
                reject("请求失败，http的状态码是"+xhr.status);
            }
        }
    })
}

// 调用
// var p=ajaxPromise({
//     url:"http://localhost/data/get.php",
//     data:{
//         name:"zs",
//         age:18
//     },
//     type:"post"
// })
// p.then(function(res){//成功的处理函数
//     console.log(res);
// }).catch(function(res){//失败的处理函数
//     console.log(res);
// })